Exibi os números primos de um numero recebido pelo usuário, sem estrutura de repetição
Publicado por Edmar Wantuil (última atualização em 22/11/2011)
[ Hits: 2.169 ]
Homepage: wantuil.com
Escrevi esse código para testar os números primos <= de um numero recebido pelo usuário.
Economizado o máximo de processos possíveis e sem utilizar estrutura de repetição apenas recursividade.
/*
Feito por Edmar Wantuil Silva Júnior
Em 14 de novembro de 2011
*/
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
//Função testa se é primo ele testa até encrontar um divisor o achando ele para o teste, pois já saberemos que ele é primo
int testa_primo(int numero, int divisor)
{
//Ira testar somente até a metade do numero pois sabemos que após a metade do nuemro so existe o proprio numero como divisor
if((numero / 2) < divisor)
return 0;
//Se achar qualquer divisor o teste irá parar pois o numero não é mais primo
if(numero % divisor == 0)
return 1;
else
return testa_primo(numero,divisor + 1);
}
//Essa função chama a função testa primo e retorna true caso primo
bool primo(numero)
{
//vamos passar o numero 2 como o primeiro divisor pois sabemos que todos os numeros são divisiveis assim se retornar 0 ele sera primo
if(testa_primo(numero,2) == 0)
return true;
else
return false;
}
//Essa função chama ela mesma até numero = cont
void primos(int numero, int cont)
{
if(primo(cont) == true)
printf("%d\n", cont);
if(numero > cont)
primos(numero, cont + 1);
return;
}
//Função principal
int main()
{
int numero= 0;
printf("Numero: ");
scanf("%d",&numero);
primos(numero, 1);
primo(numero);
return 0;
}
Raizes reais e complexas de uma equação de 2º grau
Conversor decimal para binario para GNU/LINUX
Shadow Mapping usando OpenGL e Cg
Sintetizador sonoro que toca redez vouz 4
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









